package com.ww.learn.oop.util

import java.lang.RuntimeException

// 单例
// 单例并不局限于拥有方法。他们可能有属性，val和var。
// 对象声明可以实现接口，也可以从已有的类扩展，就像对象表达式所做的那样
object Util {
    fun numberOfProcessors() = Runtime.getRuntime().availableProcessors()
}

fun unitsSupported() = listOf("Metric", "Imperial")

fun precision(): Int = throw RuntimeException("Not implemented yet")

object Temperature {
    fun c2f(c: Double) = c * 9.0 / 5 + 32
    fun f2c(f: Double) = (f - 32) * 5.0 / 9
}

object Distance {
    fun milesToKm(miles: Double) = miles * 1.609344
    fun kmToMiles(km: Double) = km / 1.609344
}